package com.itheima.example;

import java.util.Scanner;

public class Test3 {
    public static void main(String[] args) {
        // 目标：做评委打分，录入 6个评委的分数，去掉最高和最低分后的平均分即是所求
        // 1、定义一个动态初始化数组来存储6个评委的分数
        int[] scores = new int[6];

        // 2、正式录入分数
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < scores.length; i++) {
            // i = 0 1 2 3 4 5
            while (true) {
                System.out.print("请您录入第" + (i + 1) + "个评委的分数：");
                int score = sc.nextInt();
                // 判断这个分数是否在 0-100之间，才使用这个分数
                if(score >= 0 && score <= 100){
                    scores[i] = score;
                    break; // 录入当前评委分数成功的话，必须结束死循环，继续录入下一个评委分数的录入
                }else{
                    System.out.println("分数录入有误，必须在0-100之间，请重新输入分数");
                }
            }
        }

        // 3、定义三个变量，依次存储，最大值，最小值，总和
        // int maxScore = scores[0] , minScore = scores[0] , sum = 0 ;
        int maxScore = scores[0];
        int minScore = scores[0];
        int sum = 0;

        // 4、遍历数组中的每个元素，依次比较找出最大值，最小值。求和   [13, 35, 34, 98, 87, 100]
        for (int i = 0; i < scores.length; i++) {
            // 5、求和
            sum += scores[i];
            // 6、如果当前元素大于最大值变量，其值替换最大值变量
            if(scores[i] > maxScore){
                maxScore = scores[i];
            }

            // 7、如果当前元素小于最小值变量，其值替换最小值变量
            if(scores[i] < minScore){
                minScore = scores[i];
            }
        }

        // 8、按照平均分的计算规则算出结果即可
        double rs = 1.0 * (sum - maxScore - minScore) / (scores.length - 2);
        System.out.println("该选手最终得分为：" + rs);
    }
}
